// 转码器,可以将ES6代码转为ES5代码
import 'babel-polyfill'

// 引入vue插件
import Vue from 'vue'

// 引入主入口文件
import App from './App'

// 引入路由
import router from './router'

// 引入vuex状态管理 管理数据
import store from './store'

// 引入所有样式
import 'common/css/index.less'

// 阻止启动生产消息,常用作指令
Vue.config.productionTip = false

// 引入图片懒加载优化图片加载
import VueLazyload from 'vue-lazyload'
// 图片加载时候显示的默认图片
Vue.use(VueLazyload, {
  loading: require('./common/image/default.png')
})

// 引入fastclick 优化点击的时候出现300ms的延迟
import fastclick from 'fastclick'
fastclick.attach(document.body)

// 导入ajax请求插件
import Ajax from 'common/js/ajax.js'
Vue.use(Ajax)

// 导入复制粘贴
import VueClipboard from 'vue-clipboard2'
Vue.use(VueClipboard)

// 引入axios文件
import axios from 'axios';

// 导入swiper样式
import 'swiper/dist/css/swiper.css';

// 引入工具方法
import {
  setStorage,
  getStorage,
  removeStorage,
  getUrlParams,
  fnWxLogin,
  fnWxCation
} from 'common/js/util'

// 引入url
import {
  SERVICE_URL
} from 'common/js/config'

// 获取浏览器信息
const ua = window.navigator.userAgent.toLowerCase();

// 获取code
let code = getUrlParams('code');

// 渲染页面之前处理业务逻辑
router.afterEach((to) => {
  let wxUserInfo = JSON.parse(getStorage('wxUserInfo'));
  (wxUserInfo === 'undefined' || !wxUserInfo || !wxUserInfo.id) ? removeStorage('wxUserInfo'): ''
    // 如果存在更新用户信息
  if (wxUserInfo && wxUserInfo.id) {
    // 调用获取用户信息接口
    axios.get(SERVICE_URL + 'user/v1/newuserinfo/?userid=' + wxUserInfo.id)
      .then(function(res) {
        res.data.openid && setStorage('wxUserInfo', res.data)
      })
  } else {
    code ? fnWxLogin() : ua.match(/MicroMessenger/i) == 'micromessenger' && fnWxCation();
  }
})

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  store,
  components: {
    App
  },
  template: '<App/>'
})
